
package org.springblade.common.enums.rate;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 记得加分逻辑是这样的，可查看导图
 * 1. 优秀事件只要审核通过，该事件相对应的员工就可得+5分自我表现分
 * 2. 同一个事件有加分期限只有5天，超过5天谁都加不了分
 * 3. 同一个事件每一位同事/领导最多只可以加五次分，一次1分或者可以询问提示加几分（看你们哪样容易做，即同事或领导觉得这件事确实很好，可以最高加到5分的意思）
 * 4. 领导给员工事件的加分会消耗领导当月的额度
 * 5. 批评事件的解锁分会消耗员工的自我表现分
 * 6. 不需要取消加分（即取消点赞那种），加分了就是认可这个事
 */
@Getter
@AllArgsConstructor
public enum PointTypeEnum {

	SELF("自我表现分",0, 5),
	MATE("同事赞赏分",1, 1),
	LEADER("领导赞赏分",2, 1),
	DISMISS("解除分",3, 1),
	EXCHANGE("兑换礼物",4, 0),
	RETURN("退回礼物",5, 0),
	LOCK("批评事件",6, 1),

	;

	final String keyword;
	final Integer key;
	final Integer point;

	public static PointTypeEnum getEnum(String keyword) {
		if (keyword == null) {
			return null;
		} else {
			for (PointTypeEnum s : PointTypeEnum.values()) {
				if (s.getKeyword().equals(keyword)) {
					return s;
				}
			}
			return null;
		}
	}
	public static PointTypeEnum getEnum(Integer key) {
		if (key == null) {
			return null;
		} else {
			for (PointTypeEnum s : PointTypeEnum.values()) {
				if (s.getKey().equals(key)) {
					return s;
				}
			}
			return null;
		}
	}

}
